package com.lengxf.pay.icbc.bean.payBack;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lengxf.pay.common.bean.Param;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class PayBackBase implements Param {

    //工行调用固定为icbc-api
    @JsonProperty("from")
    private String from;

    //接口路径，调用哪一个接口的回调
    @JsonProperty("api")
    private String api;

    //合作方在工行开具的应用编号
    @JsonProperty("app_id")
    private String appId;

    //调用过程使用的编码格式
    @JsonProperty("charset")
    private String charset;

    //报文类型
    @JsonProperty("format")
    private String format;

    //加密方式，此接口默认不加密
    @JsonProperty("encrypt_type")
    private String encryptType;

    //回调发生时间，格式为“yyyy-MM-dd HH:mm:ss”
    @JsonProperty("timestamp")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime timestamp;

    //签名类型。目前网关回调请求的签名只支持RSA方式，需要合作方使用网关公钥验签
    @JsonProperty("sign_type")
    private String signType;

    //工行签名
    @JsonProperty("sign")
    private String sign;

    //业务参数集合，详见业务参数说明
    @JsonProperty("biz_content")
    private String bizContent;

    public PayBackBase signIgnore() {
        this.sign = null;
        return this;
    }

}
